package br.com.saeng2D.superficie.select;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.PrintWriter;

import br.com.saeng2D.objeto.AbstratoObjeto;
import br.com.saeng2D.util.R2D;
import br.com.saeng2D.util.Util;

//Demarca a area de selecao de objetos
public class RetanguloSelecao extends AbstratoObjeto {
	private boolean preenchido;
	private int xOrigem;
	private int yOrigem;

	public RetanguloSelecao(int x, int y) {
		super(null, null, x, y, 0, 0);
		xOrigem = x;
		yOrigem = y;
		corFundo = Util.getCor("cor_area_selecao");
		preenchido = Util.getBoolean("area_selecao_preenchido"); 
	}
	
	public void reformular(int x, int y) {
		if (x > xOrigem) {
			this.x = xOrigem;
			largura = x - xOrigem;
		} else {
			this.x = x;
			largura = xOrigem - x;
		}
		if (y > yOrigem) {
			this.y = yOrigem;
			altura = y - yOrigem;
		} else {
			this.y = y;
			altura = yOrigem - y;
		}
	}

	public void desenhar(Graphics2D g2) {
		g2.setColor(corFundo);
		g2.setXORMode(Color.WHITE);
		if(preenchido) {
			g2.fill(new Rectangle2D.Float(x, y, largura, altura));
		} else {
			g2.draw(new Rectangle2D.Float(x, y, largura, altura));
		}
	}

	public void salvarXML(String prefixo, PrintWriter pw) {
		throw new RuntimeException();
	}

	public boolean estarSob(int x, int y) {
		throw new RuntimeException();
	}

	public R2D getArea() {
		throw new RuntimeException();
	}

	public AbstratoObjeto prototipo() {
		throw new RuntimeException();
	}

	public void alterarTamanho(int tamanho) {
		throw new RuntimeException();
	}

	public boolean ehIgual(AbstratoObjeto objeto) {
		throw new RuntimeException();
	}
}